package com.wongoing.apiclient.alipay.query;

import java.math.BigDecimal;
import java.math.BigInteger;

import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElementDecl;
import javax.xml.bind.annotation.XmlRegistry;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.namespace.QName;

@XmlRegistry
public class ObjectFactory {

    private final static QName _GmtCreate_QNAME = new QName("", "gmt_create");
    private final static QName _FlagTradeLocked_QNAME = new QName("", "flag_trade_locked");
    private final static QName _SellerEmail_QNAME = new QName("", "seller_email");
    private final static QName _TimeOutType_QNAME = new QName("", "time_out_type");
    private final static QName _Subject_QNAME = new QName("", "subject");
    private final static QName _UseCoupon_QNAME = new QName("", "use_coupon");
    private final static QName _OperatorRole_QNAME = new QName("", "operator_role");
    private final static QName _Sign_QNAME = new QName("", "sign");
    private final static QName _Discount_QNAME = new QName("", "discount");
    private final static QName _IsSuccess_QNAME = new QName("", "is_success");
    private final static QName _Error_QNAME = new QName("", "error");
    private final static QName _Body_QNAME = new QName("", "body");
    private final static QName _BuyerId_QNAME = new QName("", "buyer_id");
    private final static QName _ToBuyerFee_QNAME = new QName("", "to_buyer_fee");
    private final static QName _Price_QNAME = new QName("", "price");
    private final static QName _TotalFee_QNAME = new QName("", "total_fee");
    private final static QName _TradeStatus_QNAME = new QName("", "trade_status");
    private final static QName _GmtLastModifiedTime_QNAME = new QName("", "gmt_last_modified_time");
    private final static QName _SignType_QNAME = new QName("", "sign_type");
    private final static QName _SellerId_QNAME = new QName("", "seller_id");
    private final static QName _IsTotalFeeAdjust_QNAME = new QName("", "is_total_fee_adjust");
    private final static QName _BuyerEmail_QNAME = new QName("", "buyer_email");
    private final static QName _GmtPayment_QNAME = new QName("", "gmt_payment");
    private final static QName _Quantity_QNAME = new QName("", "quantity");
    private final static QName _ToSellerFee_QNAME = new QName("", "to_seller_fee");
    private final static QName _TimeOut_QNAME = new QName("", "time_out");
    private final static QName _PaymentType_QNAME = new QName("", "payment_type");
    private final static QName _OutTradeNo_QNAME = new QName("", "out_trade_no");
    private final static QName _TradeNo_QNAME = new QName("", "trade_no");
    
    private final static QName _EncryptKey_QNAME = new QName("", "encrypt_key");

    /**
     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: beans
     * 
     */
    public ObjectFactory() {
    }

    /**
     * Create an instance of {@link Request }
     * 
     */
    public Request createRequest() {
        return new Request();
    }

    /**
     * Create an instance of {@link Param }
     * 
     */
    public Param createParam() {
        return new Param();
    }

    /**
     * Create an instance of {@link Alipay }
     * 
     */
    public Alipay createAlipay() {
        return new Alipay();
    }

    /**
     * Create an instance of {@link Response }
     * 
     */
    public Response createResponse() {
        return new Response();
    }

    /**
     * Create an instance of {@link Trade }
     * 
     */
    public Trade createTrade() {
        return new Trade();
    }
    
    public Timestamp createTimestamp() {
        return new Timestamp();
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "gmt_create")
    public JAXBElement<String> createGmtCreate(String value) {
        return new JAXBElement<String>(_GmtCreate_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BigInteger }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "flag_trade_locked")
    public JAXBElement<BigInteger> createFlagTradeLocked(BigInteger value) {
        return new JAXBElement<BigInteger>(_FlagTradeLocked_QNAME, BigInteger.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "seller_email")
    public JAXBElement<String> createSellerEmail(String value) {
        return new JAXBElement<String>(_SellerEmail_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "time_out_type")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    public JAXBElement<String> createTimeOutType(String value) {
        return new JAXBElement<String>(_TimeOutType_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "subject")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    public JAXBElement<String> createSubject(String value) {
        return new JAXBElement<String>(_Subject_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "use_coupon")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    public JAXBElement<String> createUseCoupon(String value) {
        return new JAXBElement<String>(_UseCoupon_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "operator_role")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    public JAXBElement<String> createOperatorRole(String value) {
        return new JAXBElement<String>(_OperatorRole_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "sign")
    public JAXBElement<String> createSign(String value) {
        return new JAXBElement<String>(_Sign_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BigDecimal }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "discount")
    public JAXBElement<BigDecimal> createDiscount(BigDecimal value) {
        return new JAXBElement<BigDecimal>(_Discount_QNAME, BigDecimal.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "is_success")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    public JAXBElement<String> createIsSuccess(String value) {
        return new JAXBElement<String>(_IsSuccess_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "error")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    public JAXBElement<String> createError(String value) {
        return new JAXBElement<String>(_Error_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "body")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    public JAXBElement<String> createBody(String value) {
        return new JAXBElement<String>(_Body_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BigInteger }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "buyer_id")
    public JAXBElement<BigInteger> createBuyerId(BigInteger value) {
        return new JAXBElement<BigInteger>(_BuyerId_QNAME, BigInteger.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BigDecimal }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "to_buyer_fee")
    public JAXBElement<BigDecimal> createToBuyerFee(BigDecimal value) {
        return new JAXBElement<BigDecimal>(_ToBuyerFee_QNAME, BigDecimal.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BigDecimal }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "price")
    public JAXBElement<BigDecimal> createPrice(BigDecimal value) {
        return new JAXBElement<BigDecimal>(_Price_QNAME, BigDecimal.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BigDecimal }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "total_fee")
    public JAXBElement<BigDecimal> createTotalFee(BigDecimal value) {
        return new JAXBElement<BigDecimal>(_TotalFee_QNAME, BigDecimal.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "trade_status")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    public JAXBElement<String> createTradeStatus(String value) {
        return new JAXBElement<String>(_TradeStatus_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "gmt_last_modified_time")
    public JAXBElement<String> createGmtLastModifiedTime(String value) {
        return new JAXBElement<String>(_GmtLastModifiedTime_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "sign_type")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    public JAXBElement<String> createSignType(String value) {
        return new JAXBElement<String>(_SignType_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BigInteger }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "seller_id")
    public JAXBElement<BigInteger> createSellerId(BigInteger value) {
        return new JAXBElement<BigInteger>(_SellerId_QNAME, BigInteger.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "is_total_fee_adjust")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    public JAXBElement<String> createIsTotalFeeAdjust(String value) {
        return new JAXBElement<String>(_IsTotalFeeAdjust_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "buyer_email")
    public JAXBElement<String> createBuyerEmail(String value) {
        return new JAXBElement<String>(_BuyerEmail_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "gmt_payment")
    public JAXBElement<String> createGmtPayment(String value) {
        return new JAXBElement<String>(_GmtPayment_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BigInteger }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "quantity")
    public JAXBElement<BigInteger> createQuantity(BigInteger value) {
        return new JAXBElement<BigInteger>(_Quantity_QNAME, BigInteger.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BigDecimal }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "to_seller_fee")
    public JAXBElement<BigDecimal> createToSellerFee(BigDecimal value) {
        return new JAXBElement<BigDecimal>(_ToSellerFee_QNAME, BigDecimal.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "time_out")
    public JAXBElement<String> createTimeOut(String value) {
        return new JAXBElement<String>(_TimeOut_QNAME, String.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BigInteger }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "payment_type")
    public JAXBElement<BigInteger> createPaymentType(BigInteger value) {
        return new JAXBElement<BigInteger>(_PaymentType_QNAME, BigInteger.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BigInteger }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "out_trade_no")
    public JAXBElement<BigInteger> createOutTradeNo(BigInteger value) {
        return new JAXBElement<BigInteger>(_OutTradeNo_QNAME, BigInteger.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BigInteger }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "", name = "trade_no")
    public JAXBElement<BigInteger> createTradeNo(BigInteger value) {
        return new JAXBElement<BigInteger>(_TradeNo_QNAME, BigInteger.class, null, value);
    }

    
    @XmlElementDecl(namespace = "", name = "encrypt_key")
    public JAXBElement<String> createEncryptKey(String value) {
        return new JAXBElement<String>(_EncryptKey_QNAME, String.class, null, value);
    }
}
